package com.example.haha_.ui_demo;

import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.design.widget.BottomNavigationView;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.view.MenuItem;


import com.example.haha_.ui_demo.fragments.CollectionFragment;
import com.example.haha_.ui_demo.fragments.SearchFragment;
import com.example.haha_.ui_demo.fragments.ShopFragment;
import com.example.haha_.ui_demo.fragments.UserFragment;

import java.util.ArrayList;
import java.util.List;

public class HomeActivity extends AppCompatActivity
    implements BottomNavigationView.OnNavigationItemSelectedListener, ViewPager.OnPageChangeListener{
        //定义ViewPager
        private ViewPager viewPager;
        //定义BottomNavigationView
        private BottomNavigationView bottomNavigationView;
        //定义FragmentPagerAdapter适配器
        private FragmentPagerAdapter adapter;

        private List<Fragment> fragmentList;
        protected void onCreate(Bundle savedInstanceState){
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_home);

            viewPager=findViewById(R.id.viewPager);
            bottomNavigationView=
                    findViewById(R.id.bottomNavigationView);

            //定义4个Fragment，并加⼊List中
        fragmentList = new ArrayList<>();
        fragmentList.add(new ShopFragment());
        fragmentList.add(new CollectionFragment());
        fragmentList.add(new SearchFragment());
        fragmentList.add(new UserFragment());

        adapter=new FragmentPagerAdapter(getSupportFragmentManager()) {
            @Override
            public Fragment getItem(int i) {
                return fragmentList.get(i);
            }

            @Override
            public int getCount() {
                return fragmentList.size();
            }
        };
        viewPager.setAdapter(adapter);
        viewPager.addOnPageChangeListener(this);

        bottomNavigationView.setOnNavigationItemSelectedListener(this);
        bottomNavigationView.setSelectedItemId(R.id.nav_shop);
}

    @Override
    public boolean onNavigationItemSelected(@NonNull MenuItem menuItem) {
       int id=0;
       switch (menuItem.getItemId()){
           case R.id.nav_shop:
               id=0;
               break;
           case R.id.nav_collection:
               id=1;
               break;
           case R.id.nav_search:
               id=2;
               break;
           case R.id.nav_user:
               id=3;
               break;
       }
    viewPager.setCurrentItem(id);
       return true;
    }

    @Override
    public void onPageScrolled(int i, float v, int i1) {

    }

    @Override
    public void onPageSelected(int i) {
            int id=0;
            switch (i){
                case 0:
                    id=R.id.nav_shop;
                    break;
                case 1:
                    id=R.id.nav_collection;
                    break;
                case 3:
                    id=R.id.nav_search;
                    break;
                case 4:
                    id=R.id.nav_user;
                    break;
            }
    bottomNavigationView.setSelectedItemId(id);
    }

    @Override
    public void onPageScrollStateChanged(int i) {

    }
}